package com.gitee.huanminabc.dynamicdb.aop;

import java.lang.annotation.*;
/**
 * @author huanmin
 * @date 2024/11/22
 */
//  @DBTransactional 多数据源事物, 只需要在需要事物的方法或类上加上此注解即可，别的不用管, 支持嵌套事物 兼容内部嵌套的@Transactional
// 如果最顶部使用 @Transactional 那么他会以当前数据源为准, 也就是说如果当前数据源是resource,那么他会使用resource 数据源的事务, 不会切换数据源, 如果内部存在多个不同的数据源访问, 那么就会出现找不到表的情况, 所以在使用  @Transactional 内部方法不允许操作不同的数据源, 就算内部某个方法嵌套了 @DBTransactional 也是不支持的
// @Transactional如果不想以当前数据源为准, 那么就需要使用 @DBSwitch("resource") 在当前的方法或者类上指定数据源
// 而@DBTransactional 不用指定数据源, 他会根据每个不同的数据源自动切换事务 , 自动兼容内部的@Transactional
@Target({ElementType.METHOD})
@Retention(RetentionPolicy.RUNTIME)
@Inherited
public @interface DBTransactional {
}
